Space-time coding is used in wireless communications systems that include multiple receive and/or transmit antennae. Space-time codes exploit the spatial diversity of wireless systems by taking advantage of multiple transmission paths between transmitters and receivers. Systems that implement space-time block coding transmit blocks that include a predetermined number of symbols. While space-time block coding may be used to increase the data rate of the communications system, space-time block codes are commonly used to add redundancy to wireless data transmissions and to increase the power of transmissions. This increases the reliability of wirelessly transmitted data and increases the range of the communications system.
For example, wireless access systems according to the IEEE 802.16a standard, which is hereby incorporated by reference in its entirety, enable the use of space-time block codes that utilize two transmit antennae. Additionally, there is interest in applying space-time block coding to next-generation wireless local area networks (WLANs).
Referring now to FIG. 1, a first wireless communications system 10 includes a symbol modulator 12. An input of the symbol modulator 12 receives user data. The symbol modulator 12 maps the user data to constellation points of a signal constellation and generates a symbol sequence c={c0, c1, c2, . . . , cm-1} comprising m symbols. The symbol modulator 12 outputs the symbol sequence c to an input of a space-time block encoder 14. The space-time block encoder 14 generates blocks that include one or more symbols, as will be described further below. The blocks are transmitted by first and second transmit antennae 16-1 and 16-2, respectively, during one or more symbol periods.
In one configuration, the space-time block encoder 14 implements a rate-1 orthogonal space-time block code. The rate R=k/p is the ratio of the number of symbols k in a block to the number of symbol periods p that are required to transmit the k symbols. For example, one space-time block encoder encodes two symbols per block according to
      G    2    =      [                                        x            1                                                x            2                                                            -                          x              2              *                                                            x            1            *                                ]  where x1 and x2 are first and second consecutive symbols, respectively, in the symbol sequence c. The first and second transmit antennae 16-1 and 16-2, respectively transmit x1 and x2 during two consecutive symbol periods. For example, during a first symbol period, the first transmit antenna 16-1 transmits c*0 and the second transmit antenna 16-2 transmits c1. During a second symbol period, the first antenna 16-1 transmits −c*1 and the second antenna 16-2 transmits c*0, where c*0 and c*1 are the complex conjugates of c0 and c1, respectively. The space-time block encoder 14 transmits complex conjugates of the symbols to add redundancy and to allow a receiver to reconstruct the signal in the event that a transmission path fades. Likewise, symbols c2 and c3 are transmitted during two successive symbol periods.
Receive antenna 18 receives a first signal transmission through h11, illustrated at 20-1, and a second signal transmission through h21, illustrated at 20-2, where hij is the channel state information between transmit antenna i and receive antenna j during a symbol period. During symbol period 2n, where n=0, 1, 2, . . . , S-1, receive antenna 18 receives symbol r2n, which is expressed as r2n=h11c2n+h21c2n+1+n2n. During symbol period (2n+1), receive antenna 18 receives symbol r2n+1, which is expressed as r2n+1=−h11c*2n+1+h21c*2n+n2n+1. In the equations for r2n and r2n+1, n2nand n2n+1, respectively, denote additive white Gaussian noise. This assumes that 2S symbols are transmitted during 2S symbol periods. Expressed in matrices, receive antenna 18 receives symbol sequence r during two consecutive symbol periods, where
  r  =            [                                                  r                              2                ⁢                n                                                                                        r                                                2                  ⁢                  n                                +                1                            *                                          ]        =                                        [                                                                                h                    11                                                                                        h                    21                                                                                                                    h                    21                    *                                                                                        -                                          h                      11                      *                                                                                            ]                    ⁡                      [                                                                                c                                          2                      ⁢                      n                                                                                                                                        c                                                                  2                        ⁢                        n                                            +                      1                                                                                            ]                          +                  [                                                                      n                                      2                    ⁢                    n                                                                                                                        n                                                            2                      ⁢                      n                                        +                    1                                    *                                                              ]                    =                        H          ·          c                +                  n          .                    An input of a space-time block decoder 22 receives received symbol sequence r, and the space-time block decoder 22 outputs user data bits {circumflex over (b)}={{circumflex over (b)}0,{circumflex over (b)}1,{circumflex over (b)}2, . . . ,{circumflex over (b)}m−1} based on r.
Referring now to FIG. 2, in one approach, the space-time block decoder 22 includes a maximum likelihood (ML) detector 24 and a bit mapping module 26. The ML detector 24 makes a symbol decision based on a continuous stream of quantized encoded symbols. The ML detector 24 utilizes squared Euclidean distances as ML decision metrics to decode the received symbols. When there is one receive antenna, equivalent and independent decision metrics for c2n and c2n+1 are derived. For example, decision metric |r2n−h11c2n−h21c2n+1|2+|r2n+1+h11c*2n+1−h21c*2n|2 is derived by squaring the additive white Gaussian noise of r2n and r2n+1 and summing the two values. After deleting terms that are independent of the codewords and rearranging the equation, the decision metric for c2n is |(h*11r2n+h21r*2n+1)−c2n|2+(−1+|h11|2+|h21|2)|c2n|2. The bit mapping module 26 maps constellation points that are output by the ML detector 24 to user data bits. However, the independent decision metrics for c2n and c2n+1 require complex computations. For example, the decision metric for c2n includes complex conjugate multiplication and squaring operations. These complex computations make the implementation of the ML detector 24 very complicated.